Code compilers and code translation systems, such as the translation system described in commonly-assigned, co-pending U.S. application Ser. No. 10/354,356, the disclosure of which is incorporated by reference in its entirety, often use state transition tables for defining outputs corresponding to given inputs. For example, a compiler may receive a data item and access a state transition table based on the data item's type and the current state to obtain a new state and an action (if any) to perform on the data item.
As the number of possible states and data item types increases, however, the state transition table becomes large and unwieldy. Editing the table is impractical due to its size, and it can be difficult to add new functions to the table to accommodate new data items or change table actions for old data items. Further, constructing large tables in the first instance is often difficult because it requires a programmer to keep track of many variables at once, providing no mechanism for dividing the task into smaller parts.
There is a desire for a system that can simplify the creation and maintenance of state transition tables.